<?php

namespace App\Http\Controllers\Admin;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
//引入question
use App\Admin\Question;

//引入excel
use Excel;
//引入input
use Input;
class QuestionController extends Controller
{
    //列表操作
    public function index(){
    	//查询全部的数据
    	$data = Question::all();
    	//展示视图
    	return view('admin.question.index',compact('data'));
    }

    //导出方法
    public function export(){
    	//定义的测试的数据（二维数组）
     	$data = Question::all();
     	//定制表头
     	$cellData[] = ['序号','题干','所属试卷','分值','选项','正确答案','添加时间'];
     	foreach ($data as $key => $value) {
     		//拼凑数据
     		$cellData[] = [
     					$value -> id,
     					$value -> question,
     					$value -> paper -> paper_name,
     					$value -> score,
     					$value -> options,
     					$value -> answer,
     					$value -> created_at
  					];
     	}
        //创建excel文件（文件名,excel的实例 use 需要使用的数据）
        Excel::create(sha1(time() . rand(1000,9999)),function($excel) use ($cellData){
        	//创建工作表（工作表名称,工作表的实例 use 需要使用的数据）
            $excel->sheet('题库', function($sheet) use ($cellData){
            	//行数据
                $sheet -> rows($cellData);
            });
        }) -> export('xls');
    }

    //导入方法
    public function import(){
    	//判断请求类型
    	if(Input::method() == 'POST'){
    		//写入数据表（读取文件中的数据，然后再去写入数据表）
			//定义文件的路径
		    //$filePath = 'storage/exports/'.iconv('UTF-8', 'GBK', '学生成绩').'.xls';
		    $filePath = '.' . Input::get('excelfile');
		    //使用excel的load方法载入文件
		    Excel::load($filePath, function($reader) {
		        // $data = $reader -> all();
		        $data = $reader -> getSheet(0) -> toArray();//获取当前文件中的第1个工作表的数据
		        //进一步的处理，写入数据表
		        foreach ($data as $key => $value) {
		        	//第一个记录是表头所以跳过
		        	if($key == '0'){
		        		continue;
		        	}
		        	//对于记录进行处理
		        	$cellData[] = [
		        		'question'		=>	$value[0],	//题干
		        		'paper_id'		=>	Input::get('paper_id'),	//试卷id
		        		'score'			=>	$value[3],	//分值
		        		'options'		=>	$value[1],	//选项
		        		'answer'		=>	$value[2],	//答案
		        		'created_at'	=>  date('Y-m-d H:i:s')	//当前时间
		        	];
		        }
		        //插入数据
		        $rst = Question::insert($cellData);
		        echo $rst ? '1' : '0';
		    });
    	}else{
    		//获取当前的试卷的选项
	    	$paper = \App\Admin\Paper::all();
	    	//展示视图
	    	return view('admin.question.import',compact('paper'));
    	}
    }
}
